Whole System Energy Transparency - More power to software developers

Talk by Kerstin Eder.

Hardware Design

Dynamic (switching) power is power used from state changes. Static (leakage) power is power that’s used at all times.

Mature research, we have features such as different energy modes (think P0, etc)

The higher up the abstraction stack we go, the more opportunities there are for savings. So there’s a clear motivation to make efforts in software.

Software

Traditional software optimisation goal is performance.

Aligning SW design decisions with energy efficiency

  • Choose best algorithm for problem at hand and make sure it fits well with the computational hardware. If we don’t do this, we risk wiping out changes made lower down the stack.
  • Minimise memory size and accesses, through efficient mapping of data, and use of caches, registers.
  • Make use of parallelism.
  • Take advantage of hardware power management.
  • Select instructions that minimise switching in the CPU and datapath.

Energy Transparency

Providing information on energy usage for programs, ideally without executing them.

Dynamic

EACOF is a system for mapping hardware measurements to specific software usage.

More time does not necessarily equate to more energy usage. E.g. counting sort uses more energy for 64-bit vs 8-bit, but less time. This is because it is more instructions to do 8-bit instead of default 64-bit, but moving the values uses less energy.

Static

ENTRA does this at ISA level. There’s a tool EnergyAnalyzer by AbsInt which can do this for some SBCs.

Performance Monitoring Units offer counters for various hardware events such as cache misses. This can then be used to fit a regression model.

References

  • Software Design for low power by Roy, Johnson
  • https://github.com/mageec
  • EACOF: A framework for providing energy transparency to enable energy-aware software development.
  • ENTRA: Whole Systems ENergy TRAnsparency